package org.jeecg.modules.hotel.arrangement.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.basic.demo.bed.entity.LwgyBaseBed;
import org.jeecg.modules.basic.demo.bed.entity.LwgyBedAssignment;
import org.jeecg.modules.hotel.arrangement.entity.*;
import org.jeecg.modules.hotel.history.entity.LwgyHotelHistory;

import java.util.List;
import java.util.Map;


public interface ILwgyHotelArrangementService extends IService<LwgyHotelArrangement> {
    void checkOutStu(LwgyHotelArrangement lwgyHotelArrangement);

    void updateBedStu(LwgyHotelArrangement lwgyHotelArrangement);

    void cleanBed(String ids);

    void cleanHolidayBed(String ids);

    public List<LwgyHotelHistory> leaveBedHistory(String ids);

    void leaveSchool(String stuIds);

    void revertLeaveStu(String ids);

    void batchAllot(Map<String, String> hotelArrange);

    void batchRecycle(String bedId);

    List<LwgyBaseBed> getBedListByStudentId(String studentId);

    boolean getClassOpenTime(String studentClass);

    String getBuildId(String roomId);

    List<ImportStuHotel> outStuHotel(LwgyBaseBed lwgyBed);

    List<LwgyXyBedAssignment> outXyHotel(LwgyXyBedAssignment lwgyBed);

    List<StuHotelRoster> StuZsHotel(LwgyBaseBed lwgyBed);

    /**
     * 卫生打分导出
     * @param lwgyBed
     * @return
     */
    List<ImportXyScore>outXyScore(LwgyBaseBed lwgyBed,String scaleBatches);

    List<ImportScore>outScore(LwgyBaseBed lwgyBed, String scaleBatches);

    /*List<ImportTeacherScore>outTeacherScore(LwgyBaseBed lwgyBed,String scaleBatches);*/

    List<ImportTeacherScore>outTeacherScore(LwgyBaseBed lwgyBed);

    List<ImportTeacherScore>outTeacherScore1(LwgyBaseBed lwgyBed);

    List<ImportStuHotel> outStuTemplate(LwgyBaseBed lwgyBed);

    void bedBatchBindTeacher(List<String> bedIds, String teacherIds,String facultyId);

//    List<LwgyHotelHistory> leaveBedHistory(String ids);
//    void cleanBedBatch(List<String> strings);

    Integer maxBed (LwgyBaseBed lwgyBed);

    List<LwgyHotelArrangement> queryStuBedByNumberList(List<String> numbers);
    //查询导入表中床位实际在系统中的住宿情况
    List<ImportStuHotelBed> selectBedByStuList(List<ImportStuHotelBed> stuList);
    //通过学生学号姓名获取学生id信息
    List<ImportStuHotelBed> selectStudentIdList(List<ImportStuHotelBed> list);

    /**查询导入表中床位实际在系统中的假期住宿情况*/
    List<ImportHoildayStu> selectBedByHoildayStuList(List<ImportHoildayStu> stuList);
    /**通过学生学号姓名获取假期学生id信息*/
    List<ImportHoildayStu> selectHoildayStudentIdList(List<ImportHoildayStu> list);

    //通过学生id 查询是否有住宿信息
    List<LwgyBaseBed> selectStuBedByStuId(String ids);

    //通过学生id 查询是否有住宿信息
    List<LwgyBaseBed> selectStuBedById(String ids,String bedIds);


    void cleanBedByStudentId(List<String> studentIdList);

    //通过学生学号姓名获取学生id信息
    List<ImportStuHotel> selectStudentIdListX(List<ImportStuHotel> list);
}
